package com.easylinkin.linkappapi.machinery.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.common.model.RequestModel;
import com.easylinkin.linkappapi.machinery.dto.ElevatorWorkStatisticsDTO;
import com.easylinkin.linkappapi.machinery.dto.MachineryIotDeviceDto;
import com.easylinkin.linkappapi.machinery.entity.ElevatorWorkRecord;
import com.easylinkin.linkappapi.machinery.vo.ElevatorWorkStatisticsVO;
import com.easylinkin.linkappapi.openapi.dto.DatapushDTO;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 升降机工作循环记录 服务类
 * </p>
 *
 * @author Xiaoyang
 * @since 2022-09-19
 */
public interface ElevatorWorkRecordService extends IService<ElevatorWorkRecord> {

  Map<Integer,List<ElevatorWorkStatisticsVO>> getStatisticsOrderByMachinery(ElevatorWorkStatisticsVO statisticsVO);

  Page getStatisticsDetailByMachinery(RequestModel<ElevatorWorkStatisticsVO> requestModel);

  List<MachineryIotDeviceDto> getMachineryIotDeviceDtos(String tenantId, String typeCodes);

  ElevatorWorkStatisticsDTO getStatisticsSum(ElevatorWorkStatisticsVO statisticsVO);

  List<ElevatorWorkStatisticsVO> getStatisticsOrderByMachineryTop(ElevatorWorkStatisticsVO statisticsVO);
  /**
   * 塔吊流水处理
   * @param datapushDTO
   */
  void datapushHandler(DatapushDTO datapushDTO);

  List<MachineryIotDeviceDto> getElevatorDevice();

}
